﻿#define _CRT_SECURE_NO_WARNINGS 1
//#include"Sequence-list.h"
//void SLInit(SL* ps) {
//	ps->arr = NULL;
//	ps->size = ps->capacity = 0;
//}
////顺序表销毁
//void SLDestroy(SL* ps)
//{
//	if (NULL == ps->arr) {
//		free(ps->arr);
//	}
//	ps->arr = NULL;
//	ps->size = ps->capacity = 0;
//}
////顺序表打印查看数据
////void SLPrint(SL s);
//
//void SLCheckCapacity(SL* ps) {
//	//检测空间够不够
//	if (ps->size==ps->capacity) {
//		int newCapacity = ps->capacity == 0 ? 4 : 2 * ps->capacity;
//		SLDataType* tmp = (SLDataType*)realloc(ps->arr,newCapacity*sizeof(SLDataType));
//		if (NULL == tmp) {
//			perror("realloc failed");
//			exit(1);
//		}
//		ps->arr = tmp;
//		ps->capacity = newCapacity;
//	}
//
//}
//
////头部插⼊/尾部插入
//void SLPushBack(SL* ps, SLDataType x) {
//	assert(ps);
//	SLCheckCapacity(ps);
//
//	ps->arr[ps->size++] = x;
//}
//void SLPushFront(SL* ps, SLDataType x) {
//	assert(ps);
//	SLCheckCapacity(ps);
//	for (int i=ps->size;i>0;i--) {
//		ps->arr[i] = ps->arr[i - 1];
//	}
//	ps->arr[0] = x;
//	++ps->size;
//}
//
////头部删除/尾部删除
//void SLPopBack(SL* ps) {
//	assert(ps);
//	assert(ps->size);
//	
//	--ps->size;
//}
//void SLPopFront(SL* ps) {
//	assert(ps);
//	assert(ps->size);
//
//	for (int i = 0; i < ps->size - 1; i++) {
//		ps->arr[i] = ps->arr[i + 1];
//	}
//	--ps->size;
//}
//
////指定位置之前插⼊/删除数据
//void SLInsert(SL* ps, int pos, SLDataType x) {
//	assert(ps);
//	assert(pos>=0&&pos<=ps->size);
//	SLCheckCapacity(ps);//特别注意
//	for (int i=ps->size;i>pos;i--) {
//		ps->arr[i] = ps->arr[i - 1];
//	}
//	ps->arr[pos] = x;
//	ps->size++;
//}
//void SLErase(SL* ps, int pos) {
//	assert(ps);
//	assert(ps->arr);
//	assert(pos >= 0 && pos <= ps->size);
//
//	for (int i=pos;i<ps->size-1;i++) {
//		ps->arr[i] = ps->arr[i + 1];
//	}
//	ps->size--;
//}
//int SLFind(SL* ps, SLDataType x) {
//	assert(ps);
//
//	for (int i = 0; i < ps->size;i++) {
//		if (ps->arr[i]==x) {
//			return i;
//		}
//	}
//	return -1;
//}